User Manual for Package ClustToolApp

Abtract and Overview


ClustToolApp supports cluster analysis and cluster validation with interactive visual outputs, generated from imported data with geo references.

The R package clustToolApp provides a combination of functions to execute clustering tasks with simplicity in a graphical user interface (GUI). ClustToolApp provides a user-friendly dashboard executed by shiny, given the option to import and analyze data sets and visualize the results on maps and diagnostic plots, including information on validity with the possibility to save results for further use (Alqadi and Steffen 2020).

The following procedures are supported with ClustToolApp:

  • Import data sets either in CSV or XLSX format.

  • Import data sets from R’s global environment.

  • Structuring the imported data to fit the required arrangement.

  • Choosing both variables and coordinates from the data set to execute clustering tasks, and to plot observations onto a dynamic map with layovers for additional information referring to the cluster it is assigned to. The obtained information is stored as Results that can be viewed at any time.

  • Mclust, kmeans, CLARA, PAM, cmeans (e1071), Diana, Agnes, hclust are supported clustering algorithm methods.

  • Applying suitable proximity measures for supported clustering algorithms.

  • Calculating the best number of clusters k for supported clustering algorithms.

  • A range of transformation options to prevent or remove large skewness.

  • Scaling features for equal contribution of variables to ensure centrality if imported data is scaled differently.

  • Supported Agglomeration (Linkage) methods for agglomerative clustering.

  • Providing ggplot2 based elegant visualizations of clusters. Showcasing projected observations that are colored regarding the criteria of average distance. Obtained by silhouette from the cluster package.

  • Providing ggplot2based elegant visualizations of partitions. Observations are represented by points in the plot, using principal components if ncol(data) > 2. They are carried out by fviz_cluster from the factoextra package.

  • Providing ggplot2-based Silhouette plots based on results obtained by silhouette from the cluster package.

  • Providing ggplot2-based visualizations of the cluster means, based on selected variables that can be scaled and transformed individually.

  • Providing heatmaps carried out by either the factoextra or heatmaply package to assess underlying patterns in data.

  • Analyzing compositional data with suitable scaling and transformation methods in arbitrarily specified compositions

  • Support for analysing data of non-compositional and compositional type if merged and contained in a single data set with seperation features.

  • Support for data comparison

  • Support for downloading Results to local directory or R’s global environment.

Instructions


This vignette aims to serve as a guidance to how the application is built, and in which order the user must proceed to generate clustering results from an imported data set. A summary of all the possible clustering methods and parameters as shown in Figure 0.1, point out what options and what outputs are supported. Furthermore, restrictions that could accur depending on datatypes or methods chosen, are bound to notifications that appear simultaneously when executing tasks.

A table providing an overview of all possibilities according to the boundries of the ClustToolApp.

Figure 0.1: A table providing an overview of all possibilities according to the boundries of the ClustToolApp.

1 Acquiring data

1.1 Importing Data Set

After successfully launching ClustToolApp, the users first step involves the import of a data set. The application launches in the “Import Data set” section with certain guidance to import a data set, shown in Figure 1.1.

Before data can be imported (1) The user can choose from a supported data format or obtain data from the R environment and upload it with either the default file browser or type the title-name of a data set already listed in the R environment. (2) Various parameters are listed to assist in structuring the imported file if not displayed as desired. The variable selection and the drop-down selectors for specifying the cluster arguments in the sidebar positioned on the left-hand side, can be used after a data set is imported. (3) By clicking the Import button on the main panel, notifications could appear if a reduction of dimensions is done due to NAs or if the data set contains observations of 0, Inf, numerical or binary value.

Figure 1.1: Before data can be imported (1) The user can choose from a supported data format or obtain data from the R environment and upload it with either the default file browser or type the title-name of a data set already listed in the R environment. (2) Various parameters are listed to assist in structuring the imported file if not displayed as desired. The variable selection and the drop-down selectors for specifying the cluster arguments in the sidebar positioned on the left-hand side, can be used after a data set is imported. (3) By clicking the Import button on the main panel, notifications could appear if a reduction of dimensions is done due to NAs or if the data set contains observations of 0, Inf, numerical or binary value.

1.2 Choosing the correct format

ClustToolApp provides support for CSV and XLSX formats for importing data aswell as support for acquiring data from the R environment.
Therefore, consider changing the format of the data set to either one of each, to comply with the required option before attempting to load.

1.3 Upload file from directory

ClustToolApp supports browsing your local directory using your default file browser to select a data set before loading it into the environment. An indicative loading-bar will appear and signal Upload complete if the task has been executed successfully.
Note that there are several parameters that can be specified related to data import for structural reasons to proceed with. The selected file will directly appear as a table on the main panel providing insight in how it is structered before finally being imported. The table is dynamic and changes simultaneously, regarding the choices of structuring that are done.

1.4 Structuring the imported data set

ClustToolApp provides built in manipulation features as shown in Figure 1.2, to (1) prepare and structure the data set prior to importing it into the shiny app. On the bottom of the main panel, the data set is then (2) displayed for the user to decide if it is structured correctly. The displayed data set will interactively restructure itself if further import parameters are changed as described in Section “Upload file from directory”, see Figure 1.2.

Selectable parameters are provided to restructure the data set if not fully complyable, as the data preview indicates the structuring providing insight of the current state.

Figure 1.2: Selectable parameters are provided to restructure the data set if not fully complyable, as the data preview indicates the structuring providing insight of the current state.

By selecting Import, the loaded and structured data set is then generated, and stored in the background. The user is notified if entries are of binary, categorical or numerical value. In cases of imported data sets containing missing values, typically listed as NA or so-called Inf values, clustToolApp proceeds with list-wise deletion of the entire row leading to a reduction of dimensions as seen in Figure 1.3. This is done to ensure the functionality of the app and should not disort generated results if a fair amount of entries are still available for clustering.

Notifications appear (1) if noteworthy values are included in the imported data set. For this given example with 400 entries, 392 remain as the list-delection has takesn place to prevent malfunctioning of the app.

Figure 1.3: Notifications appear (1) if noteworthy values are included in the imported data set. For this given example with 400 entries, 392 remain as the list-delection has takesn place to prevent malfunctioning of the app.

3 Variable Transformation and Scaling


Most clustering methods are suited to detect clusters of spherical shape. Therefore, transforming variables to modify the shape of their distribution to help determining the boundaries between clusters, may be necessary to eliminate the skewness and identify a possible hidden structure within. As demonstrated in Figure 3.1, variables subject to transformation are subdivided according to what has been determined as Comp or non-Comp data (1). Once a transformation method has been applied (3) to a selected variable, it is excluded from the list (2). This prevents the user from applying transformation methods to the same variable as it could happen unintendedly. If the generated results don’t seem to yield satisfying results, regaining initial values is done by clicking the Reset button located beside the OK button. Selected variables are then released for applying better suited transformation or scaling methods (4). The following transformation methods are supported:

For non-Compositional Data

For Compositional Data

Standardization is crucial for cluster analysis and is applied to differently scaled variables. It controls the range of values, for the selected variables. In combination with applied transformation methods, improved results can therefore be generated. Depending on the data set in use, variables can be transformed and scaled differently to one another as ClustToolApp supports the appliance of transformation and scaling to variables individually and in every possible combination, in consideration of their type (1). The following standardization techniques are supported:

With both applicable to either Coda or non-Coda and further explained in Section . For efficient evaluation of scaled variables, plotmeans, an output dedicated to visualize the average mean of all variables with reference to their cluster is complimented for simultaneous assessment of the results.

Variables that have been selected, are listed to to be chosen from in order transform and scale them. Hints are given, to notify the user if any selected variables contain non numeric values or an entry value of 0.

Figure 3.1: Variables that have been selected, are listed to to be chosen from in order transform and scale them. Hints are given, to notify the user if any selected variables contain non numeric values or an entry value of 0.

A further tab compliments the menu item Data Preperation, located overhead and titled as adist, provides a distinct distance measure for compositional data exclusively. As seen in Figure 3.2, implemented hints provide the user with further information if adist is intended for application. Restrictions prevent adist from being applyed as long as the requirements are not fully met. The Apply button will therefore remain disabled until further doing. Lifting restriction according to the implemented hints unleashes further feature selection as seen in Figure 3.2. It is highly recommended that the user has full knowledge of the data set in use, as the variables which have been classified as unaltered compositional data must now be grouped into their associated composition. As demonstrated in Figure 3.2, variables clay, sand and silt are components of Composition 1 and are therefore listed in regards. If the user is analysing a data set containing multiple compositions, the user must increase the number of compositions to reference further variables to their associated compositions.

The overhead tab aDist opens a further section for preparing data if Coda and non-Coda are included in the data set, providing the option to apply the Aitchison distance to Comp data by not affecting the non-Comp data. Compositions can be weighted differently if necessary, with the slide bar in regards. Non-Comp data is weighted separately with the slide bar above. Additional slide bars unfold if the Number of compositions is increased. The slide bars indicate the weighting in percent.

Figure 3.2: The overhead tab aDist opens a further section for preparing data if Coda and non-Coda are included in the data set, providing the option to apply the Aitchison distance to Comp data by not affecting the non-Comp data. Compositions can be weighted differently if necessary, with the slide bar in regards. Non-Comp data is weighted separately with the slide bar above. Additional slide bars unfold if the Number of compositions is increased. The slide bars indicate the weighting in percent.

4 Modified Data Set Including Estimates


4.1 View Data set

This menu item is called as soon as the user has successfully imported the data set of interest. The imported data set however, remains unaltered and can be examined if the user has the need to do so. It provides an overview for determining variables to specify their purpose as demonstrated in Figure 2.2.

4.2 Results

As soon as the required inputs are specified in the sidebar as seen in Figure 2.1, ClustToolApp simultaneously proceeds with acquiring the data in need to construct what we call Results. Therefore, the newly constructed data set containing the selected variables is appended with all necessary information to conduct and generate clustering results. Results is therefore altered constantly referred to what is being applied by the user. ClustToolApp has the included feature for downloading the newly structured data set for further use in different tasks. Supported formats such as csv or xlsx are possible options with the addidtional feature of loading the data set into the R environment.

In this specific demonstration, the specified coordinates, as well as the optionally selected id, are listed with the variables that have been selected by the user. Furthermore, generated values such as validity measures or cluster membership are appended automatically during the process.

Figure 4.1: In this specific demonstration, the specified coordinates, as well as the optionally selected id, are listed with the variables that have been selected by the user. Furthermore, generated values such as validity measures or cluster membership are appended automatically during the process.

5 Visualisation Of Results


The menu item Visualisation Of Results is called as soon as the variable selection in sidebar is confirmed by pressing the red ok button. The overhead tab Dynamic Map should render first visual results if coordinates have been specified correctly. In cases of undefined coordinates or data sets with missing geospatial data reference, an error will occur stating a message to which the user can react accordingly. The main panel, as seen in Figure 5.1, is complemented with 3 further dropdown slots, visible in all three overhead tabs at all time, for assessing and evaluating results in combination with the desired visual output of each section. The slots are unfolded in a dropdown manner and can be hidden away by the user as desired. Switching back and forth from the overhead tabs should be done after an output is rendered. By doing so, the user can avoid possible crashes due to heavy computational workload which could lead to the loss of already generated results. The Rendering of visuals depend heavily on the size of data, subject to analysing. Time-intense rendering should therefore not be interrupted with the reproduction of further outputs that occur when switching between overhead tabs.

Overview

  • Dynamic Map A dynamic map showcasing the structure of already clustered data points, signalised by icon color and shape to indicate their cluster affiliation. Icons are individually selectable with attached information released in a pop-up window. Interactive interference such as dragging and zooming to desired destination by is supported.

  • Faceting Map Seperatly rendered maps, based on the number of clusters specified by the user, with overlayed data points that are seperated according to their accosiated clusters.

  • MDS Multidimensional scaling visualisation, showcasing the level of dissimilarity of paired objects in association with the clusters they are assigned to.

  • Silhoutte Plot A quality based output displaying the Average silhoutte width of every cluster generated.

  • Heatmap A heatmap providing visual insight into calculated distances between data points

  • Plotmeans A visual providing the mean value all of selected variables in clusters generated, to showcase their affiliation and dominance to proceed with the appliance of scaling or transformation methods if necessary.

The main panel is sectioned in four different overhead tabs. Pinned slots numbered 1-3 are included and can be unfolded in a drop-down manner as demonstrated with 1. (Plotmeans). In cases of missing geospatial data, the rendering of the dynamic map is excluded, making evaluations based on the slots 1-3 the only interpretable output.

Figure 5.1: The main panel is sectioned in four different overhead tabs. Pinned slots numbered 1-3 are included and can be unfolded in a drop-down manner as demonstrated with 1. (Plotmeans). In cases of missing geospatial data, the rendering of the dynamic map is excluded, making evaluations based on the slots 1-3 the only interpretable output.

5.1 Dynamic Map

ClustToolApp provides an interactive map that displays the selected variables within a fitted boundary restrained to the gepgraphical position of pin-pointed data objects. It serves as an illustration to assist in recognizing clusters of the data contained in Results. The projected markers represent the probes or values obtained from the data set, if coordinates have been specified as demonstrated in Section . In Figure 5.2. They are colored and shaped depending on the clusters they belong to. By clicking on any given marker, an overlay is directly projected containing various information regarding the probe and its linkage to the cluster. The map is dynamic, allowing the user to zoom in and out arbitrarily.

Projected data points in a map that differ in color and shape in regard to their cluster affiliation. Adjusting zoom and dragging around is supported including the projection of a table containing information dedicated to each data point if selectized. Demonstrated as seen circled in red.

Figure 5.2: Projected data points in a map that differ in color and shape in regard to their cluster affiliation. Adjusting zoom and dragging around is supported including the projection of a table containing information dedicated to each data point if selectized. Demonstrated as seen circled in red.

5.2 Faceting Map

Faceting Map is dedicated to present clusters separately, providing a subdivided arrangement of rendered maps each showcasing a single cluster and its complying data point. The number of rendered maps is linked to the determined number of clusters specified in the sidebar. Projected data points are coloured regarding the silhouette value they possess, indicating the quality that determines their membership in an assigned cluster. Ranging from 0 to 1, data points are either coloured in red, indicating a low silhouette width, otherwise transitioning into blue, if higher values are detected. The Average silhouette width of each cluster is seen as a validity measure indicating the overall quality of the clustering result as seen in Figure 5.3.

A Subdivided output according to the specified number of clusters determined by the user with each cluster showcasing its affiliated data points that are projected in colours given by the silhoutte width they possess. As demonstrated in this Figure, it is easily observed that cluster 3 features the most observation coloured in red which eventually leads to a low average silhoutte width as taken form the corresponding value framed in red.

Figure 5.3: A Subdivided output according to the specified number of clusters determined by the user with each cluster showcasing its affiliated data points that are projected in colours given by the silhoutte width they possess. As demonstrated in this Figure, it is easily observed that cluster 3 features the most observation coloured in red which eventually leads to a low average silhoutte width as taken form the corresponding value framed in red.

5.3 MDS

The graph produced by fviz_cluster transforms the initial set of variables from the generated results into a new set of variables through principal component analysis (PCA). This dimensionality reduction algorithm operates on the selected variables, projecting the data onto the first two principle components Dim1 and Dim2, that should be the two dimensions that show the most variation in the data, see Figure 5.4.

Multidimensional scaling (MDS) with Dim1 and Dim2 illustrating the amount of variance of the data being described in percent. Complemented by Plotmeans, further conclusions can be drawn for backing up interpretations of the overall clustering result. The broaded scattering of data from cluster 3 for instance, can be backed by the fact that Fe indicates a high value and is also proven to be so if data point 215 is inspected in **Results**.  Further, data points 231 and 59 show considerably high quantities of `Mg` with 59 also possessing an extremely high value of Cr which could lead to the assumption that its not classified correctly.

Figure 5.4: Multidimensional scaling (MDS) with Dim1 and Dim2 illustrating the amount of variance of the data being described in percent. Complemented by Plotmeans, further conclusions can be drawn for backing up interpretations of the overall clustering result. The broaded scattering of data from cluster 3 for instance, can be backed by the fact that Fe indicates a high value and is also proven to be so if data point 215 is inspected in Results. Further, data points 231 and 59 show considerably high quantities of Mg with 59 also possessing an extremely high value of Cr which could lead to the assumption that its not classified correctly.

5.4 Plotting the cluster means

The output generated by Plotmeans as seen in Figure 5.3, provides a structured diagramm showcasing the selected variables and their mean value appearance within each cluster, providing the user with an image of how to interpret it. A cluster containing a high value of a selected variable, will be displayed with the variable being listed in a higher position, whereas a low value will indicate a rare occurrence of a selected variable and will therefore be listed in a much lower position. Further, a dropdown menu listing validity measures is included to define the quality of the clusters and to determine its characteristics in a convenient way, as it is displayed in the title bar of the structured diagram.

Structured diagram of the selected variable mean values for all 3 clusters with each possessing different values in the title bar indicating the validity measure desired. The dropdown menu-bar is located above, to switch between measures conveniently.

Figure 5.5: Structured diagram of the selected variable mean values for all 3 clusters with each possessing different values in the title bar indicating the validity measure desired. The dropdown menu-bar is located above, to switch between measures conveniently.

5.5 Silhouette plot

The silhouette plot is for assessing the quality of each cluster generated, for interpretation and validation of the consistency within, which is based on the data in use. It serves as a graphical representation of how well each object has been classified as described in Section and demonstrated in Figure 5.6. The Average silhouette width is the average silhouette width value of all silhouette widths (Si), of all observations, see Figure 5.6. Average silhoutte width values indicate the goodness of clustering results. The higher they get, the better they are. Ranging from 0 to 1, with 0 indicating an extremely poor quality of clustering and 1 indicating the opposite. Data points lying in between clusters lead to lower scores eventually affecting the Average silhouette width if such data points are increased in their number. Negative silhouette widths indicate falsely placed data points within a cluster, which indicates that they have been misclassified and affect the overall Average silhouette width dramatically.

From left to right, the output showcases the clusters alongside the x axis in different colors with declining Si widths eventually dropping to negative values. The bandwidth of the different colored clusters indicate the number of objects within. Therefore, the wider the cluster is, the more data point are assigned to it.  Every single data point in each cluster is projected according to the Si value it possesses. The descending structure is caused by the generated output, that positions higher values first in row. Corresponding to the Si values, the alignment decreases as we move further alongside the x axis. Misclassification of data points are easily observed, as they stand out by occupying the negative section of the generated output. With an Average silhouette width of only 0.36, this clustering attempt fails in providing informative results needed to draw conclusions.

Figure 5.6: From left to right, the output showcases the clusters alongside the x axis in different colors with declining Si widths eventually dropping to negative values. The bandwidth of the different colored clusters indicate the number of objects within. Therefore, the wider the cluster is, the more data point are assigned to it. Every single data point in each cluster is projected according to the Si value it possesses. The descending structure is caused by the generated output, that positions higher values first in row. Corresponding to the Si values, the alignment decreases as we move further alongside the x axis. Misclassification of data points are easily observed, as they stand out by occupying the negative section of the generated output. With an Average silhouette width of only 0.36, this clustering attempt fails in providing informative results needed to draw conclusions.

5.6 heatmap

The user can determine how the observations are related to one another, regarding the colour that indicates the distances between them. The user can decide whether the heatmap is rendered with interactive intervention possibilities or as a simple, fixed output. Red corresponds to a small, whereas blue indicates a larger distance as shown in Figure 5.7. For the interactive heatmap rendered with heatmaply, rendering can take longer due to heavy computations. Once its rendered, the user can interact by hovering over it, providing the distance value for every observation in the data set. heatmaply also supports an enlargement feature that is done by dragging the mouse over the section of interest in cases of large data sets.

The Heatmap provides visuals regarding the distances between objects providing information to visually assess underlying patterns in data. As demonstrated, the underlying pattern made visual suggests how many clusters would be ideal to obtain better results. In this case, 2 clusters are senseful.

Figure 5.7: The Heatmap provides visuals regarding the distances between objects providing information to visually assess underlying patterns in data. As demonstrated, the underlying pattern made visual suggests how many clusters would be ideal to obtain better results. In this case, 2 clusters are senseful.

5.7 Validity Measures

Rather than assessing results based on visuals only, validity measures that determine the visual outputs are included to provide exact information regarding the quality and overall characteristics of the clustering. With both, visuals and the defining information, the user can easily draw conclusions when analysing results. Therefore, provided information regarding the results generated, are additionally summarized in a table for reviewing purposes in a convenient way.

We distinguish between Local validity measures, for the evaluation of each cluster individually, and Global validity measures that provide information for evaluating the overall clustering results by considering every single cluster. ClustToolApp further supports the feature of storing results for comparisons as demonstrated in 5.8 and additionally, downloading them to a local directory for further use such as distribution purposes.

The combined tables generated and displayed as seen in Figure 5.8, are based on global and local validity measures that are calculated by the cluster.stats function from the fpc package. For further, detailed information regarding the measurements, visit the fpc package description on CRAN.

The table containing information to assess the validity of the clustering results is split into subgroups of local and global measures. The table as displayed represents the measures of the current output generated according to the selected variables and parameters by the user. On the right, the blank space, framed in red, is withheld until results are stored and selected for comparison. After storing the current validity measures, the user can alter the selected variables in the sidebar or transform and scale variables differently. This will not affect the temporary stored data in the background. Simultaneously, the table on the left-hand-side is updated as the user proceeds with conducting tasks, affecting the validity measures. If the newly generated table of validity measures is stored for comparison to a third attempt, it is appended to the list beneath the table on the right-hand side as an option to which the current values should be compared to. Down below, the option is provided to download the measures, saves the measures permanently to the desired directory with the format of choice.

Figure 5.8: The table containing information to assess the validity of the clustering results is split into subgroups of local and global measures. The table as displayed represents the measures of the current output generated according to the selected variables and parameters by the user. On the right, the blank space, framed in red, is withheld until results are stored and selected for comparison. After storing the current validity measures, the user can alter the selected variables in the sidebar or transform and scale variables differently. This will not affect the temporary stored data in the background. Simultaneously, the table on the left-hand-side is updated as the user proceeds with conducting tasks, affecting the validity measures. If the newly generated table of validity measures is stored for comparison to a third attempt, it is appended to the list beneath the table on the right-hand side as an option to which the current values should be compared to. Down below, the option is provided to download the measures, saves the measures permanently to the desired directory with the format of choice.

6 Calculate Best Number of Clusters


Being able to determine the correct number of clusters is essential in order to obtain informative results. The rendered heatmap for instance, provides insight into the structure of the data set, as seen in Figure 5.7. ClustToolApp provides the feature of calculating the optimal number of clusters regarding the algorithm specified by the user. Complimented with a graphical output, it further assists the user in investigating the suggested number if ever being sceptic.

For kmeans, hclust and Agnes the best number of clusters is calculated according to the majority rule by the NbClust package. The generated plot as seen in Figure 6.1 is produced to visually showcase how the number of clusters is determined. The output is processed based on the proposal among all 30 indices. According to the majority rule, the optimal number of clusters is defined according to how frequent a certain number is proposed.

A bar plot indicating the best number of clusters according to the majority rule when analysing data with the k-means clustering algorithm. The cmd terminal which would be running in the background lists proposals and the conclusion for the optimal number of clusters.

Figure 6.1: A bar plot indicating the best number of clusters according to the majority rule when analysing data with the k-means clustering algorithm. The cmd terminal which would be running in the background lists proposals and the conclusion for the optimal number of clusters.

The Mclust package has its own method in calculating the best number of k as seen in Figure 6.2. It uses maximum likelihood to fit all models, with different covariance matrix parameterizations, for a range of k components. The best model is chosen with BIC (Bayesian Information Criterion). A high BIC score indicates strong evidence for the corresponding model.
The available model options, in Mclust package are further described in https://cran.r-project.org/web/packages/mclust/vignettes/mclust.html.

Plot indicating the best number of clusters for the Mclust algorithm based on the Bayesian Information Criterion (BIC).

Figure 6.2: Plot indicating the best number of clusters for the Mclust algorithm based on the Bayesian Information Criterion (BIC).

For all clustering methods, the number of clusters proposed will automatically replace the number of clusters initially specified by the user in the sidebar. The user however must then reselect the ok button located in the Sidebar, to conduct a new attempt with the suggested number of clusters provided by ClustToolApp.

For CLARA, PAM, cmeans and Diana, the optimal number of clusters is proposed based on the Averege silhouette width. ClustToolApp assignes values ranging from 2 to 15 to the algorithm in use and checks for the highest Average silhouette width value. It then proceeds with proposing the optimal number of clusters according to the highest calue obtained. In Figure 6.3, the highest average silhouette width is indicated with reference to the number of clusters listed alongside the x axis.

Optimal number of clusters according to the highest silhoutte width value.

Figure 6.3: Optimal number of clusters according to the highest silhoutte width value.

Running ClustToolApp


To Launch ClustToolApp execute the following:

devtools::install_github("matthias-da/clustToolApp")

Alqadi, K., and K. Steffen. 2020. “Clustering with the R Package Clusttoolapp.” Cluster Analysis and Exploratory Data Mining, June. https://github.com/cran/clustTool/.

 

A work by

Kerim Alqadi | Kevin Steffen | Matthias Templ